home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 January: Mac OS SDK / Dev.CD Jan 96 SDK / Dev.CD Jan 96 SDK1.toast / Development Kits (Disc 1) / ColorSync / Interfaces / AIncludes / CMICCProfile.a < prev    next >
Encoding:
Text File  |  1995-03-23  |  21.8 KB  |  680 lines  |  [TEXT/MPS ]

  1. ;
  2. ;    File:        CMICCProfile.a
  3. ;
  4. ;    Contains:    Definitions for ColorSync 2.0 profile
  5. ;
  6. ;    Version:    Technology:    ColorSync 2.0
  7. ;                Release:    2.0f3
  8. ;
  9. ;    Copyright:    © 1984-1994 by Apple Computer, Inc.
  10. ;                All rights reserved.
  11. ;
  12. ;    Bugs?:        If you find a problem with this file, send the file and version
  13. ;                information (from above) and the problem description to:
  14. ;
  15. ;                    Internet:    apple.bugs@applelink.apple.com
  16. ;                    AppleLink:    APPLE.BUGS
  17. ;
  18. ;
  19.  
  20.     IF &TYPE('__CMICCPROFILE__') = 'UNDEFINED' THEN
  21. __CMICCPROFILE__ SET 1
  22.  
  23.  
  24.     IF &TYPE('__TYPES__') = 'UNDEFINED' THEN
  25.     include 'Types.a'
  26.     ENDIF
  27. ;        include 'ConditionalMacros.a'                                ;
  28.  
  29. cmCS2ProfileVersion                EQU        $02000000
  30.  
  31. ; Current Major version number 
  32. cmCurrentProfileMajorVersion    EQU        $02000000
  33.  
  34. ; magic cookie number for anonymous file ID 
  35. cmMagicNumber                    EQU        'acsp'
  36.  
  37. ; ColorSync profile version 1.0 
  38. cmCS1ProfileVersion                EQU        $00000100
  39.  
  40. ;**********************************************************************
  41. ;************** ColorSync 2.0 profile specification *******************
  42. ;**********************************************************************
  43. ; profile flags element values 
  44. cmEmbeddedProfile                EQU        0                    ; 0 is not embedded profile, 1 is embedded profile 
  45. cmEmbeddedUse                    EQU        1                    ; 0 is to use anywhere, 1 is to use as embedded profile only 
  46.  
  47. ; data type element values 
  48. cmAsciiData                        EQU        0
  49. cmBinaryData                    EQU        1
  50.  
  51. ; rendering intent element values  
  52. cmPerceptual                    EQU        0                    ; Photographic images 
  53. cmRelativeColorimetric            EQU        1                    ; Logo Colors 
  54. cmSaturation                    EQU        2                    ; Business graphics 
  55. cmAbsoluteColorimetric            EQU        3                    ; Logo Colors 
  56.  
  57. ; speed and quality flag options 
  58. cmNormalMode                    EQU        0                    ; it uses the least significent two bits in the high word of flag 
  59. cmDraftMode                        EQU        1                    ; it should be evaulated like this: right shift 16 bits first, mask off the 
  60. cmBestMode                        EQU        2                    ; high 14 bits, and then compare with the enum to determine the option value 
  61.  
  62. ; device/media attributes element values  
  63. cmReflective                    EQU        0                    ; 0 is reflective media, 1 is transparency media 
  64. cmGlossy                        EQU        1                    ; 0 is glossy, 1 is matte 
  65.  
  66. ; screen encodings  
  67. cmPrtrDefaultScreens            EQU        0                    ; Use printer default screens.  0 is false, 1 is ture 
  68. cmLinesPer                        EQU        1                    ; 0 is LinesPerCm, 1 is LinesPerInch 
  69.  
  70. ; 2.0 tag type information 
  71. cmNumHeaderElements                EQU        10
  72.  
  73. ; public tags 
  74. cmAToB0Tag                        EQU        'A2B0'
  75. cmAToB1Tag                        EQU        'A2B1'
  76. cmAToB2Tag                        EQU        'A2B2'
  77. cmBlueColorantTag                EQU        'bXYZ'
  78. cmBlueTRCTag                    EQU        'bTRC'
  79. cmBToA0Tag                        EQU        'B2A0'
  80. cmBToA1Tag                        EQU        'B2A1'
  81. cmBToA2Tag                        EQU        'B2A2'
  82. cmCalibrationDateTimeTag        EQU        'calt'
  83. cmCharTargetTag                    EQU        'targ'
  84. cmCopyrightTag                    EQU        'cprt'
  85. cmDeviceMfgDescTag                EQU        'dmnd'
  86. cmDeviceModelDescTag            EQU        'dmdd'
  87. cmGamutTag                        EQU        'gamt'
  88. cmGrayTRCTag                    EQU        'kTRC'
  89. cmGreenColorantTag                EQU        'gXYZ'
  90. cmGreenTRCTag                    EQU        'gTRC'
  91. cmLuminanceTag                    EQU        'lumi'
  92. cmMeasurementTag                EQU        'meas'
  93. cmMediaBlackPointTag            EQU        'bkpt'
  94. cmMediaWhitePointTag            EQU        'wtpt'
  95. cmNamedColorTag                    EQU        'ncol'
  96. cmPreview0Tag                    EQU        'pre0'
  97. cmPreview1Tag                    EQU        'pre1'
  98. cmPreview2Tag                    EQU        'pre2'
  99. cmProfileDescriptionTag            EQU        'desc'
  100. cmProfileSequenceDescTag        EQU        'pseq'
  101. cmPS2CRD0Tag                    EQU        'psd0'
  102. cmPS2CRD1Tag                    EQU        'psd1'
  103. cmPS2CRD2Tag                    EQU        'psd2'
  104. cmPS2CRD3Tag                    EQU        'psd3'
  105. cmPS2CSATag                        EQU        'ps2s'
  106. cmPS2RenderingIntentTag            EQU        'ps2i'
  107. cmRedColorantTag                EQU        'rXYZ'
  108. cmRedTRCTag                        EQU        'rTRC'
  109. cmScreeningDescTag                EQU        'scrd'
  110. cmScreeningTag                    EQU        'scrn'
  111. cmTechnologyTag                    EQU        'tech'
  112. cmUcrBgTag                        EQU        'bfd '
  113. cmViewingConditionsDescTag        EQU        'vued'
  114. cmViewingConditionsTag            EQU        'view'
  115.  
  116. ; custom tags 
  117. cmPS2CRDVMSizeTag                EQU        'psvm'
  118.  
  119. ; technology tag descriptions 
  120. cmTechnologyFilmScanner            EQU        'fscn'
  121. cmTechnologyReflectiveScanner    EQU        'rscn'
  122. cmTechnologyInkJetPrinter        EQU        'ijet'
  123. cmTechnologyThermalWaxPrinter    EQU        'twax'
  124. cmTechnologyElectrophotographicPrinter EQU        'epho'
  125. cmTechnologyElectrostaticPrinter EQU        'esta'
  126. cmTechnologyDyeSublimationPrinter EQU        'dsub'
  127. cmTechnologyPhotographicPaperPrinter EQU        'rpho'
  128. cmTechnologyFilmWriter            EQU        'fprn'
  129. cmTechnologyVideoMonitor        EQU        'vidm'
  130. cmTechnologyVideoCamera            EQU        'vidc'
  131. cmTechnologyProjectionTelevision EQU        'pjtv'
  132. cmTechnologyCRTDisplay            EQU        'CRT '
  133. cmTechnologyPMDisplay            EQU        'PMD '
  134. cmTechnologyAMDisplay            EQU        'AMD '
  135. cmTechnologyPhotoCD                EQU        'KPCD'
  136. cmTechnologyPhotoImageSetter    EQU        'imgs'
  137. cmTechnologyGravure                EQU        'grav'
  138. cmTechnologyOffsetLithography    EQU        'offs'
  139. cmTechnologySilkscreen            EQU        'silk'
  140. cmTechnologyFlexography            EQU        'flex'
  141.  
  142. ; type signatures 
  143. cmSigCurveType                    EQU        'curv'
  144. cmSigDataType                    EQU        'data'
  145. cmSigDateTimeType                EQU        'dtim'
  146. cmSigLut16Type                    EQU        'mft2'
  147. cmSigLut8Type                    EQU        'mft1'
  148. cmSigMeasurementType            EQU        'meas'
  149. cmSigNamedColorType                EQU        'ncol'
  150. cmSigProfileDescriptionType        EQU        'desc'
  151. cmSigScreeningType                EQU        'scrn'
  152. cmSigS15Fixed16Type                EQU        'sf32'
  153. cmSigSignatureType                EQU        'sig '
  154. cmSigTextType                    EQU        'text'
  155. cmSigU16Fixed16Type                EQU        'uf32'
  156. cmSigU1Fixed15Type                EQU        'uf16'
  157. cmSigUInt32Type                    EQU        'ui32'
  158. cmSigUInt64Type                    EQU        'ui64'
  159. cmSigUInt8Type                    EQU        'ui08'
  160. cmSigViewingConditionsType        EQU        'view'
  161. cmSigXYZType                    EQU        'XYZ '
  162.  
  163. ; Measurement type encodings 
  164. ; Measurement Flare 
  165. cmFlare0                        EQU        $00000000
  166. cmFlare100                        EQU        $00000001
  167.  
  168. ; Measurement Geometry    
  169. cmGeometryUnknown                EQU        $00000000
  170. cmGeometry045or450                EQU        $00000001
  171. cmGeometry0dord0                EQU        $00000002
  172.  
  173. ; Standard Observer    
  174. cmStdobsUnknown                    EQU        $00000000
  175. cmStdobs1931TwoDegrees            EQU        $00000001
  176. cmStdobs1964TenDegrees            EQU        $00000002
  177.  
  178. ; Standard Illuminant 
  179. cmIlluminantUnknown                EQU        $00000000
  180. cmIlluminantD50                    EQU        $00000001
  181. cmIlluminantD65                    EQU        $00000002
  182. cmIlluminantD93                    EQU        $00000003
  183. cmIlluminantF2                    EQU        $00000004
  184. cmIlluminantD55                    EQU        $00000005
  185. cmIlluminantA                    EQU        $00000006
  186. cmIlluminantEquiPower            EQU        $00000007
  187. cmIlluminantF8                    EQU        $00000008
  188.  
  189. ; Spot Function Value 
  190. cmSpotFunctionUnknown            EQU        0
  191. cmSpotFunctionDefault            EQU        1
  192. cmSpotFunctionRound                EQU        2
  193. cmSpotFunctionDiamond            EQU        3
  194. cmSpotFunctionEllipse            EQU        4
  195. cmSpotFunctionLine                EQU        5
  196. cmSpotFunctionSquare            EQU        6
  197. cmSpotFunctionCross                EQU        7
  198.  
  199. ; Color Space Signatures 
  200. cmXYZData                        EQU        'XYZ '
  201. cmLabData                        EQU        'Lab '
  202. cmLuvData                        EQU        'Luv '
  203. cmYxyData                        EQU        'Yxy '
  204. cmRGBData                        EQU        'RGB '
  205. cmGrayData                        EQU        'GRAY'
  206. cmHSVData                        EQU        'HSV '
  207. cmHLSData                        EQU        'HLS '
  208. cmCMYKData                        EQU        'CMYK'
  209. cmCMYData                        EQU        'CMY '
  210. cmMCH5Data                        EQU        'MCH5'
  211. cmMCH6Data                        EQU        'MCH6'
  212. cmMCH7Data                        EQU        'MCH7'
  213. cmMCH8Data                        EQU        'MCH8'
  214.  
  215. ; profileClass enumerations 
  216. cmInputClass                    EQU        'scnr'
  217. cmDisplayClass                    EQU        'mntr'
  218. cmOutputClass                    EQU        'prtr'
  219. cmLinkClass                        EQU        'link'
  220. cmAbstractClass                    EQU        'abst'
  221. cmColorSpaceClass                EQU        'spac'
  222.  
  223. ; platform enumerations 
  224. cmMacintosh                        EQU        'APPL'
  225. cmMicrosoft                        EQU        'MSFT'
  226. cmSolaris                        EQU        'SUNW'
  227. cmSiliconGraphics                EQU        'SGI '
  228. cmTaligent                        EQU        'TGNT'
  229.  
  230. ; ColorSync 1.0 elements 
  231. cmCS1ChromTag                    EQU        'chrm'
  232. cmCS1TRCTag                        EQU        'trc '
  233. cmCS1NameTag                    EQU        'name'
  234. cmCS1CustTag                    EQU        'cust'
  235.  
  236. ; General element data types 
  237. CMDateTime                 RECORD    0
  238. year                     ds.w    1
  239. month                     ds.w    1
  240. dayOfTheMonth             ds.w    1
  241. hours                     ds.w    1
  242. minutes                     ds.w    1
  243. seconds                     ds.w    1
  244. sizeof                     EQU    *
  245.                         ENDR
  246.  
  247. ; typedef struct CMDateTime  CMDateTime
  248. CMFixedXYZColor         RECORD    0
  249. X                         ds.l    1
  250. Y                         ds.l    1
  251. Z                         ds.l    1
  252. sizeof                     EQU    *
  253.                         ENDR
  254.  
  255. ; typedef struct CMFixedXYZColor  CMFixedXYZColor
  256. ; typedef unsigned short     CMXYZComponent
  257. CMXYZColor                 RECORD    0
  258. X                         ds.w    1
  259. Y                         ds.w    1
  260. Z                         ds.w    1
  261. sizeof                     EQU    *
  262.                         ENDR
  263.  
  264. ; typedef struct CMXYZColor  CMXYZColor
  265. CM2Header                 RECORD    0
  266. size                     ds.l    1                                    ; This is the total size of the Profile 
  267. CMMType                     ds.l    1                                    ; CMM signature,  Registered with CS2 consortium  
  268. profileVersion             ds.l    1                                    ; Version of CMProfile format 
  269. profileClass             ds.l    1                                    ; input, display, output, devicelink, abstract, or color conversion profile type 
  270. dataColorSpace             ds.l    1                                    ; color space of data 
  271. profileConnectionSpace     ds.l    1                                    ; profile connection color space 
  272. dateTime                 ds        CMDateTime                            ; date and time of profile creation 
  273. CS2profileSignature         ds.l    1                                    ; 'acsp' constant ColorSync 2.0 file ID 
  274. platform                 ds.l    1                                    ; primary profile platform, Registered with CS2 consortium 
  275. flags                     ds.l    1                                    ; profile flags 
  276. deviceManufacturer         ds.l    1                                    ; Registered with CS2 consortium 
  277. deviceModel                 ds.l    1                                    ; Registered with CS2 consortium 
  278. deviceAttributes         ds.l    2                                    ; Attributes like paper type 
  279. renderingIntent             ds.l    1                                    ; preferred rendering intent of tagged object 
  280. white                     ds        CMFixedXYZColor                    ; profile illuminant 
  281. reserved                 ds.b    48                                ; reserved for future use 
  282. sizeof                     EQU    *
  283.                         ENDR
  284.  
  285. ; typedef struct CM2Header     CM2Header
  286. CMTagRecord             RECORD    0
  287. tag                         ds.l    1                                    ; Registered with CS2 consortium 
  288. elementOffset             ds.l    1                                    ; Relative to start of CMProfile 
  289. elementSize                 ds.l    1
  290. sizeof                     EQU    *
  291.                         ENDR
  292.  
  293. ; typedef struct CMTagRecord  CMTagRecord
  294. CMTagElemTable             RECORD    0
  295. count                     ds.l    1
  296. tagList                     ds        CMTagRecord                        ; Variable size 
  297. sizeof                     EQU    *
  298.                         ENDR
  299.  
  300. ; typedef struct CMTagElemTable  CMTagElemTable
  301. ; External 0x02002001 CMProfile 
  302. CM2Profile                 RECORD    0
  303. header                     ds        CM2Header
  304. tagTable                 ds        CMTagElemTable
  305. elemData                 ds.b    1                                    ; Tagged element storage. Variable size 
  306. sizeof                     EQU    *
  307.                         ENDR
  308.  
  309. ; typedef struct CM2Profile  CM2Profile, **CM2ProfileHandle
  310. ; Tag Type Definitions 
  311. CMCurveType             RECORD    0
  312. typeDescriptor             ds.l    1                                    ; 'curv' 
  313. reserved                 ds.l    1                                    ; fill with 0x00 
  314. countValue                 ds.l    1                                    ; number of entries in table that follows 
  315. data                     ds.w    1                                    ; Tagged element storage. Variable size 
  316. sizeof                     EQU    *
  317.                         ENDR
  318.  
  319. ; typedef struct CMCurveType  CMCurveType
  320. CMDataType                 RECORD    0
  321. typeDescriptor             ds.l    1                                    ; 'data' 
  322. reserved                 ds.l    1                                    ; fill with 0x00 
  323. dataFlag                 ds.l    1                                    ; 0 = ASCII, 1 = binary 
  324. data                     ds.b    1                                    ; Tagged element storage. Variable size 
  325. sizeof                     EQU    *
  326.                         ENDR
  327.  
  328. ; typedef struct CMDataType  CMDataType
  329. CMDateTimeType             RECORD    0
  330. typeDescriptor             ds.l    1                                    ; 'dtim' 
  331. reserved                 ds.l    1
  332. dateTime                 ds        CMDateTime
  333. sizeof                     EQU    *
  334.                         ENDR
  335.  
  336. ; typedef struct CMDateTimeType  CMDateTimeType
  337. CMLut16Type             RECORD    0
  338. typeDescriptor             ds.l    1                                    ; 'mft2' 
  339. reserved                 ds.l    1                                    ; fill with 0x00 
  340. inputChannels             ds.b    1                                    ; Number of input channels 
  341. outputChannels             ds.b    1                                    ; Number of output channels 
  342. gridPoints                 ds.b    1                                    ; Number of clutTable grid points 
  343. reserved2                 ds.b    1                                    ; fill with 0x00 
  344. matrix                     ds.l    9                                    ; 
  345. inputTableEntries         ds.w    1                                    ; 
  346. outputTableEntries         ds.w    1                                    ; 
  347. inputTable                 ds.w    1                                    ; Variable size 
  348. CLUT                     ds.w    1                                    ; Variable size 
  349. outputTable                 ds.w    1                                    ; Variable size 
  350. sizeof                     EQU    *
  351.                         ENDR
  352.  
  353. ; typedef struct CMLut16Type  CMLut16Type
  354. CMLut8Type                 RECORD    0
  355. typeDescriptor             ds.l    1                                    ; 'mft1' 
  356. reserved                 ds.l    1                                    ; fill with 0x00 
  357. inputChannels             ds.b    1                                    ; 
  358. outputChannels             ds.b    1                                    ; 
  359. gridPoints                 ds.b    1                                    ; 
  360. reserved2                 ds.b    1                                    ; fill with 0x00 
  361. matrix                     ds.l    9                                    ; 
  362. inputTable                 ds.b    256                                ; fixed size of 256 
  363. CLUT                     ds.b    1                                    ; Variable size 
  364. outputTable                 ds.b    256                                ; fixed size of 256 
  365. sizeof                     EQU    *
  366.                         ENDR
  367.  
  368. ; typedef struct CMLut8Type  CMLut8Type
  369. CMMeasurementType         RECORD    0
  370. typeDescriptor             ds.l    1                                    ; 'meas' 
  371. reserved                 ds.l    1                                    ; fill with 0x00 
  372. standardObserver         ds.l    1                                    ; 0 : unknown, 1 : CIE 1931, 2 : CIE 1964 
  373. backingXYZ                 ds        CMFixedXYZColor                    ; absolute XYZ values of backing 
  374. geometry                 ds.l    1                                    ; 0 : unknown, 1 : 0/45 or 45/0, 2 :0/d or d/0 
  375. flare                     ds.l    1                                    ; 0 : 0%, 1 : 100% flare 
  376. illuminant                 ds.l    1                                    ; standard illuminant 
  377. sizeof                     EQU    *
  378.                         ENDR
  379.  
  380. ; typedef struct CMMeasurementType  CMMeasurementType
  381. CMNamedColorType         RECORD    0
  382. typeDescriptor             ds.l    1                                    ; 'ncol' 
  383. reserved                 ds.l    1                                    ; fill with 0x00 
  384. vendorFlag                 ds.l    1                                    ; 
  385. count                     ds.l    1                                    ; count of named colors in array that follows 
  386. prefixName                 ds.b    1                                    ; Variable size, max = 32, to access fields after this one, have to count bytes 
  387. suffixName                 ds.b    1                                    ; Variable size, max = 32 
  388. rootName                 ds.b    1                                    ; Variable size, max = 32 
  389. colorCoords                 ds.b    1                                    ; Variable size  
  390. sizeof                     EQU    *
  391.                         ENDR
  392.  
  393. ; typedef struct CMNamedColorType  CMNamedColorType
  394. CMTextDescriptionType     RECORD    0
  395. typeDescriptor             ds.l    1                                    ; 'desc' 
  396. reserved                 ds.l    1                                    ; fill with 0x00 
  397. ASCIICount                 ds.l    1                                    ; the count of "bytes" 
  398. ASCIIName                 ds.b    2                                    ; Variable size, to access fields after this one, have to count bytes 
  399. UniCodeCode                 ds.l    1
  400. UniCodeCount             ds.l    1                                    ; the count of characters, each character has two bytes 
  401. UniCodeName                 ds.b    2                                    ; Variable size 
  402. ScriptCodeCode             ds.w    1
  403. ScriptCodeCount             ds.b    1                                    ; the count of "bytes" 
  404. ScriptCodeName             ds.b    2                                    ; Variable size 
  405. sizeof                     EQU    *
  406.                         ENDR
  407.  
  408. ; typedef struct CMTextDescriptionType  CMTextDescriptionType
  409. CMTextType                 RECORD    0
  410. typeDescriptor             ds.l    1                                    ; 'text' 
  411. reserved                 ds.l    1                                    ; fill with 0x00 
  412. text                     ds.b    1                                    ; count of text is obtained from tag size element 
  413. sizeof                     EQU    *
  414.                         ENDR
  415.  
  416. ; typedef struct CMTextType  CMTextType
  417. CMScreeningType         RECORD    0
  418. typeDescriptor             ds.l    1                                    ; 'scrn' 
  419. reserved                 ds.l    1                                    ; fill with 0x00 
  420. screeningFlag             ds.l    1                                    ; bit 0 : use printer default screens, bit 1 : inch/cm 
  421. channelCount             ds.l    1
  422. frequency                 ds.l    1
  423. angle                     ds.l    1
  424. sportFunction             ds.l    1
  425. sizeof                     EQU    *
  426.                         ENDR
  427.  
  428. ; typedef struct CMScreeningType  CMScreeningType
  429. CMSignatureType         RECORD    0
  430. typeDescriptor             ds.l    1                                    ; 'sig ' 
  431. reserved                 ds.l    1                                    ; fill with 0x00 
  432. signature                 ds.l    1
  433. sizeof                     EQU    *
  434.                         ENDR
  435.  
  436. ; typedef struct CMSignatureType  CMSignatureType
  437. CMS15Fixed16ArrayType     RECORD    0
  438. typeDescriptor             ds.l    1                                    ; 'sf32' 
  439. reserved                 ds.l    1                                    ; fill with 0x00 
  440. value                     ds.l    1                                    ; Variable size 
  441. sizeof                     EQU    *
  442.                         ENDR
  443.  
  444. ; typedef struct CMS15Fixed16ArrayType  CMS15Fixed16ArrayType
  445. CMU16Fixed16ArrayType     RECORD    0
  446. typeDescriptor             ds.l    1                                    ; 'uf32' 
  447. reserved                 ds.l    1                                    ; fill with 0x00 
  448. value                     ds.l    1                                    ; Variable size 
  449. sizeof                     EQU    *
  450.                         ENDR
  451.  
  452. ; typedef struct CMU16Fixed16ArrayType  CMU16Fixed16ArrayType
  453. CMUInt16ArrayType         RECORD    0
  454. typeDescriptor             ds.l    1                                    ; 'ui16' 
  455. reserved                 ds.l    1                                    ; fill with 0x00 
  456. value                     ds.w    1                                    ; Variable size 
  457. sizeof                     EQU    *
  458.                         ENDR
  459.  
  460. ; typedef struct CMUInt16ArrayType  CMUInt16ArrayType
  461. CMUInt32ArrayType         RECORD    0
  462. typeDescriptor             ds.l    1                                    ; 'ui32' 
  463. reserved                 ds.l    1                                    ; fill with 0x00 
  464. value                     ds.l    1                                    ; Variable size 
  465. sizeof                     EQU    *
  466.                         ENDR
  467.  
  468. ; typedef struct CMUInt32ArrayType  CMUInt32ArrayType
  469. CMUInt64ArrayType         RECORD    0
  470. typeDescriptor             ds.l    1                                    ; 'ui64' 
  471. reserved                 ds.l    1                                    ; fill with 0x00 
  472. value                     ds.l    1                                    ; Variable size (x2) 
  473. sizeof                     EQU    *
  474.                         ENDR
  475.  
  476. ; typedef struct CMUInt64ArrayType  CMUInt64ArrayType
  477. CMUInt8ArrayType         RECORD    0
  478. typeDescriptor             ds.l    1                                    ; 'ui08' 
  479. reserved                 ds.l    1                                    ; fill with 0x00 
  480. value                     ds.b    1                                    ; Variable size 
  481. sizeof                     EQU    *
  482.                         ENDR
  483.  
  484. ; typedef struct CMUInt8ArrayType  CMUInt8ArrayType
  485. CMViewingConditionsType RECORD    0
  486. typeDescriptor             ds.l    1                                    ; 'view' 
  487. reserved                 ds.l    1                                    ; fill with 0x00 
  488. illuminant                 ds        CMFixedXYZColor                    ; absolute XYZs of illuminant  in cd/m^2 
  489. surround                 ds        CMFixedXYZColor                    ; absolute XYZs of surround in cd/m^2 
  490. stdIlluminant             ds.l    1                                    ; see definitions of std illuminants 
  491. sizeof                     EQU    *
  492.                         ENDR
  493.  
  494. ; typedef struct CMViewingConditionsType  CMViewingConditionsType
  495. CMXYZType                 RECORD    0
  496. typeDescriptor             ds.l    1                                    ; 'XYZ ' 
  497. reserved                 ds.l    1                                    ; fill with 0x00 
  498. XYZ                         ds        CMFixedXYZColor                    ; variable size XYZ tristimulus values 
  499. sizeof                     EQU    *
  500.                         ENDR
  501.  
  502. ; typedef struct CMXYZType     CMXYZType
  503. ; Profile sequence description type 
  504. CMProfileSequenceDescType RECORD    0
  505. typeDescriptor             ds.l    1                                    ; 'pseq ' 
  506. reserved                 ds.l    1                                    ; fill with 0x00 
  507. count                     ds.l    1                                    ; Number of descriptions
  508. ;                                                         * variable size fields to follow, to access them, must count bytes 
  509. deviceMfg                 ds.l    1                                    ; Device Manufacturer 
  510. deviceModel                 ds.l    1                                    ; Decvice Model 
  511. attributes                 ds.l    2                                    ; Device attributes 
  512. technology                 ds.l    1                                    ; Technology signature 
  513. mfgDescASCIICount         ds.l    1                                    ; the count of "bytes" 
  514. mfgDescASCIIName         ds.b    2                                    ; Variable size 
  515. mfgDescUniCodeCode         ds.l    1
  516. mfgDescUniCodeCount         ds.l    1                                    ; the count of characters, each character has two bytes 
  517. mfgDescUniCodeName         ds.b    2                                    ; Variable size 
  518. mfgDescScriptCodeCode     ds.l    1
  519. mfgDescScriptCodeCount     ds.l    1                                    ; the count of "bytes" 
  520. mfgDescScriptCodeName     ds.b    2                                    ; Variable size 
  521. modelDescASCIICount         ds.l    1                                    ; the count of "bytes" 
  522. modelDescASCIIName         ds.b    2                                    ; Variable size 
  523. modelDescUniCodeCode     ds.l    1
  524. modelDescUniCodeCount     ds.l    1                                    ; the count of characters, each character has two bytes 
  525. modelDescUniCodeName     ds.b    2                                    ; Variable size 
  526. modelDescScriptCodeCode     ds.w    1
  527. modelDescScriptCodeCount ds.b    1                                    ; the count of "bytes" 
  528. modelDescScriptCodeName     ds.b    2                                    ; Variable size 
  529. sizeof                     EQU    *
  530.                         ENDR
  531.  
  532. ; typedef struct CMProfileSequenceDescType  CMProfileSequenceDescType
  533. ; Under color removal, black generation type 
  534. CMUcrBgType             RECORD    0
  535. typeDescriptor             ds.l    1                                    ; 'bfd  ' 
  536. reserved                 ds.l    1                                    ; fill with 0x00 
  537. ucrCount                 ds.l    1                                    ; Number of UCR entries 
  538. ucrValues                 ds.w    1                                    ; variable size 
  539. bgCount                     ds.l    1                                    ; Number of BG entries 
  540. bgValues                 ds.w    1                                    ; variable size 
  541. ucrbgASCII                 ds.b    1                                    ; null terminated ASCII string 
  542. sizeof                     EQU    *
  543.                         ENDR
  544.  
  545. ; typedef struct CMUcrBgType  CMUcrBgType
  546. CMIntentCRDVMSize         RECORD    0
  547. renderingIntent             ds.l    1                                    ; rendering intent 
  548. VMSize                     ds.l    1                                    ; VM size taken up by the CRD 
  549. sizeof                     EQU    *
  550.                         ENDR
  551.  
  552. ; typedef struct CMIntentCRDVMSize  CMIntentCRDVMSize
  553. CMPS2CRDVMSizeType         RECORD    0
  554. typeDescriptor             ds.l    1                                    ; 'psvm' 
  555. reserved                 ds.l    1                                    ; fill with 0x00 
  556. count                     ds.l    1                                    ; number of intent entries 
  557. intentCRD                 ds        CMIntentCRDVMSize                    ; variable size 
  558. sizeof                     EQU    *
  559.                         ENDR
  560.  
  561. ; typedef struct CMPS2CRDVMSizeType  CMPS2CRDVMSizeType
  562. ;**********************************************************************
  563. ;************** ColorSync 1.0 profile specification *******************
  564. ;**********************************************************************
  565.  
  566. cmGrayResponse                    EQU        0
  567. cmRedResponse                    EQU        1
  568. cmGreenResponse                    EQU        2
  569. cmBlueResponse                    EQU        3
  570. cmCyanResponse                    EQU        4
  571. cmMagentaResponse                EQU        5
  572. cmYellowResponse                EQU        6
  573. cmUcrResponse                    EQU        7
  574. cmBgResponse                    EQU        8
  575. cmOnePlusLastResponse            EQU        9
  576.  
  577. ; Device types 
  578. cmMonitorDevice                    EQU        'mntr'
  579. cmScannerDevice                    EQU        'scnr'
  580. cmPrinterDevice                    EQU        'prtr'
  581.  
  582. CMIString                 RECORD    0
  583. theScript                 ds.w    1
  584. theString                 ds.l    16
  585. sizeof                     EQU    *
  586.                         ENDR
  587.  
  588. ; typedef struct CMIString     CMIString
  589. ; Profile options 
  590.  
  591. cmPerceptualMatch                EQU        $0000                ; Default. For photographic images 
  592. cmColorimetricMatch                EQU        $0001                ; Exact matching when possible 
  593. cmSaturationMatch                EQU        $0002                ; For solid colors 
  594.  
  595. ; Profile flags 
  596. cmNativeMatchingPreferred        EQU        $00000001            ; Default to native not preferred 
  597. cmTurnOffCache                    EQU        $00000002            ; Default to turn on CMM cache 
  598.  
  599. ; typedef long                 CMMatchOption
  600. ; typedef long                 CMMatchFlag
  601. CMHeader                 RECORD    0
  602. size                     ds.l    1
  603. CMMType                     ds.l    1
  604. applProfileVersion         ds.l    1
  605. dataType                 ds.l    1
  606. deviceType                 ds.l    1
  607. deviceManufacturer         ds.l    1
  608. deviceModel                 ds.l    1
  609. deviceAttributes         ds.l    2
  610. profileNameOffset         ds.l    1
  611. customDataOffset         ds.l    1
  612. flags                     ds.l    1
  613. options                     ds.l    1
  614. white                     ds        CMXYZColor
  615. black                     ds        CMXYZColor
  616. sizeof                     EQU    *
  617.                         ENDR
  618.  
  619. ; typedef struct CMHeader     CMHeader
  620. CMProfileChromaticities RECORD    0
  621. red                         ds        CMXYZColor
  622. green                     ds        CMXYZColor
  623. blue                     ds        CMXYZColor
  624. cyan                     ds        CMXYZColor
  625. magenta                     ds        CMXYZColor
  626. yellow                     ds        CMXYZColor
  627. sizeof                     EQU    *
  628.                         ENDR
  629.  
  630. ; typedef struct CMProfileChromaticities  CMProfileChromaticities
  631. CMProfileResponse         RECORD    0
  632. counts                     ds.w    1
  633. data                     ds.w    1                                    ; Variable size 
  634. sizeof                     EQU    *
  635.                         ENDR
  636.  
  637. ; typedef struct CMProfileResponse  CMProfileResponse
  638. CMProfile                 RECORD    0
  639. header                     ds        CMHeader
  640. profile                     ds        CMProfileChromaticities
  641. response                 ds        CMProfileResponse
  642. profileName                 ds        CMIString
  643. customData                 ds.b    1                                    ; Variable size 
  644. sizeof                     EQU    *
  645.                         ENDR
  646.  
  647. ; typedef struct CMProfile     CMProfile, **CMProfileHandle
  648.     IF OLDROUTINENAMES  THEN
  649.  
  650. kCMApplProfileVersion            EQU        cmCS1ProfileVersion
  651.  
  652. grayResponse                    EQU        cmGrayResponse
  653. redResponse                        EQU        cmRedResponse
  654. greenResponse                    EQU        cmGreenResponse
  655. blueResponse                    EQU        cmBlueResponse
  656. cyanResponse                    EQU        cmCyanResponse
  657. magentaResponse                    EQU        cmMagentaResponse
  658. yellowResponse                    EQU        cmYellowResponse
  659. ucrResponse                        EQU        cmUcrResponse
  660. bgResponse                        EQU        cmBgResponse
  661. onePlusLastResponse                EQU        cmOnePlusLastResponse
  662.  
  663. rgbData                            EQU        cmRGBData
  664. cmykData                        EQU        cmCMYKData
  665. grayData                        EQU        cmGrayData
  666. xyzData                            EQU        cmXYZData
  667.  
  668. monitorDevice                    EQU        cmMonitorDevice
  669. scannerDevice                    EQU        cmScannerDevice
  670. printerDevice                    EQU        cmPrinterDevice
  671.  
  672. ; typedef unsigned short     XYZComponent
  673. ; typedef struct CMXYZColor  XYZColor
  674. ; typedef unsigned short     CMResponseData
  675. ; typedef struct CMIString     IString
  676. ; typedef long                 CMResponseColor
  677. ; typedef CMResponseColor     responseColor
  678.     ENDIF
  679.     ENDIF ; __CMICCPROFILE__
  680.